home *** CD-ROM | disk | FTP | other *** search
- <html>
- <head>
- <TITLE>A Generic 3D Graphics Kernel</TITLE>
- <body bgcolor="#000020" TEXT="#ffffff" LINK="#f0f000" VLINK="#f0f000" ALINK="#f0f000">
-
- <H1>A Generic 3D Graphics Kernel (V1.5)</H1>
-
- Current graphic systems (traditional or object-oriented) offer a
- certain amount of functionality but also prescribe a lot of impli-
- cations, constraints and may not fit a given task. The result is
- that in many cases people start from scratch, implement the basic
- graphics stuff again and again.<p>
-
- The objective of the announced project is to develop a generic 3D
- graphics kernel "<em>G</em>" that may be used to implement an own
- system by deriving the generic one. By aggregation and inheritance the
- interfaces and implementations of the generic kernel may be used.
- The generic kernel shall offer a wide functionality consisting of
- unrelated classes that may adaptively be integrated into a specialized
- system without run-time and memory overhead.<p>
-
- The principal functionality of the system will be [is]:
- <ul>
- <li>basic parametric aggregates and related operators
- [parametric fix-sized vector, dl list, dynamic list, for-each iterators]
- <li>elementary graphical data types: vector (2D, 3D, generic), matrices,
- colors, vertex, etc. and related operators
- [2D, 3D, nD Vector, 4x4, nxn Matrix, "Phong" Surface, RGB color,
- different vertex types]
- <li>essential scene collections (DAG, tree, binary tree, linear list)
- <li>basic graphical design patterns such as PHIGS' CSS, or a CGRM
- environment with its components
- <li>basic topological classes with covariant extensibility
- [1D, 2D, Polyhedron, parametric curve and surface]
- <li>abstract and concrete rendering classes (rendering interfaces,
- camera models, specific rendering primitives, i.e., Quadric for
- ray-tracing)
- [ray-tracing and shading interface, perspectivic and orthographic
- camera model, shader, ray-tracer, quadric, polygon, shading and
- ray-tracing iterators to be used for cameras and composites, to
- be platform-independent, the specific shading stuff is encapsulated
- in a "device driver" with following realizations until now:
- <ul>
- <li>OpenGL and X11 R4 - R6
- <li>OpenGL and Tk 3.6 - 4.1 (both UNIX and Windows/NT)
- </ul>
- NOTE: OpenGL compatible public domain library Mesa has been
- tested successfully as replacement for OpenGL]
- <li>pixel-based output devices [Pixmap, ImageFile]
- <li>rendering-independent mathematical stuff, e.g., Splines and free
- form surfaces [solid textures, bump mappings, interpolated spline curves and surfaces]
- <li>basic interaction classes (abstract and concrete, e.g., low-level
- event types) [2D mouse and spaceball events, socket encapsulation,
- pixmap update event, callbacks, abstract input device featuring
- feedback access and hierarchical organization, input server,
- timer and file input devices]
- <li>utility classes (identification, file formats, user interface
- integration, generic format converters) [string, SGI-, Targa-,
- RGBA-file format, Tcl language binding (optional), interpretative
- class system, generic DeltaBlue constraint solver]
- </ul>
-
- The generic kernel is provided with all sources and <A HREF=
- "http://metallica.prakinf.tu-ilmenau.de/generic/HIER.html">documentation</a>,
- and may be used for both commercial and non-commercial projects without restrictions.
-
- For papers discussing the concepts of the G kernel see
- <ul>
- <li><A HREF="ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GENERIC/dublin.ps.gz">
- A Generic Graphics Kernel and a Customized Derivative</A>
- <li><A HREF="ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GENERIC/springer95.ps.gz">
- Issues on Hierarchical Graphical Scenes</A>
- <li><A HREF="ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GENERIC/pilzen96.ps.gz">
- Design of Rendering-Independent Topological Types</A>
- <li><A HREF="ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GENERIC/springer96.ps.gz">
- A Generic Approach to Computer Graphics</A>
- <p>
- <li><A HREF="ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GENERIC/style.ps.gz">
- C++ Programming Style Guide for G</A>
- </ul>
- The generic kernel itself is available via ftp:
- <ul>
- <li><A HREF= "ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GENERIC/g1.5.unix.tar.gz">
- GENERIC 1.5 UNIX Version (G, GT, GX)</A>
- <li><A HREF= "ftp://metallica.prakinf.tu-ilmenau.de/pub/PROJECTS/GENERIC/g1.5.dos.tar.gz">
- GENERIC 1.5 DOS Version (G, GT, GX)</A><p>
- </ul>
- Derived kernels until now are:
- <ul>
- <li><A HREF="http://www.rz.tu-ilmenau.de/~juhu/gx.html">
- GX</a> - an extended ray-tracing kernel by Nguyen Duc Cuong
- <li>GT - an NFF compatible ray-tracing kernel for test purposes
- basing on GX
- <li>GG - a prototype GIS kernel by AED Graphics GmbH
- <li><A HREF="http://metallica.prakinf.tu-ilmenau.de/egr.htm">
- EGR GF</a> - an object-oriented commercial semantic kernel for
- European furniture industry
- <li><A HREF="http://metallica.prakinf.tu-ilmenau.de/egr.htm">
- EGR MAF</a> - a distributed Multimedia application framework
- <li><A HREF="http://metallica.prakinf.tu-ilmenau.de/egr.htm">
- EGR TIGER</a> - an interpretative OpenGL environment including Motif-like GUI
- functionality and hi-level OpenGL-based kernel for education
- </ul>
- Kernels in work:
- <ul>
- <li>GY - a reimplementation of former 3D graphics kernel
- <A HREF="http://metallica.prakinf.tu-ilmenau.de/GOOD.html">YART</a>
- <li>PRIMA - a sample implementation of ISO PREMO by DIN
- </ul>
- To join the G mailing list send a <a href="mailto:ekki@prakinf.tu-ilmenau.de">mail</a>
- with subject "<em>subscribe GENERIC mailing list</em>".<p>
-
- Special thx goes to Nguyen Duc Cuong (TU Dresden, Germany),
- Frank Wicht, Jochen Pohl, Michael Bauroth, Heiko Fischer, Mario Ruebsam,
- Christian Martin (all EasternGraphics, Germany), Pavol Michalik,
- Thomas Petzke (both TU Ilmenau), Malte Zoeckler, Roland Wunderling
- (both ZIB Berlin) and <A HREF="http://metallica.prakinf.tu-ilmenau.de/egr.htm">
- EasternGraphics GmbH</a>.<p>
-
- Comments, extensions and discussions are always welcome.<p>
- Copyright 1996 <a href=http://metallica.prakinf.tu-ilmenau.de/ekki.html>Ekkehard 'Ekki' Beier.</a>
-